Delays the execution of an asynchronous function.
Delay executing part of an async function, by putting it to sleep, returning a Promise.
延遲異步函數的執行
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
///
async function sleepyWork() {
console.log("I'm going to sleep for 1 second.");
await sleep(1000);
console.log('I woke up after 1 second.');
}
在 async 函數中放入 延遲功能 通過將該函數返回一個promise
因為 await 會等待收到 resolve 之後才會進行後面的動作,如果沒有收到就會一直處在等待的狀態
ES7 裡頭 async 的本質是 promise 的語法糖
使用在異步函數時,就會出現 await
async用於申明一個function是異步的,而await可以認為是async wait的簡寫,等待一個異步方法執行完成。
基本語法
async function a(){
await b();
..... // 等 b() 完成後才會執行
await c();
..... // 等 c() 完成後才會執行
await new Promise(resolve=>{
.....
});
..... // 上方的 promise 完成後才會執行
}
a();
a().then(()=>{
..... // 等 a() 完成後接著執行
});
async function demo() {
let result = await Promise.resolve(123);
console.log(result);
}
demo();
Chrome裡申明這樣一個函數,可以在控制台看到返回的其實就是一個Promise對象。
promise 顧名思義就是「保證執行之後才會做什麼事情」
const myFirstPromise = new Promise((resolve, reject) => {
// 執行一些非同步作業,最終呼叫:
//
// resolve(someValue); // 實現
// 或
// reject("failure reason"); // 拒絕
});